单元测试 (注意:如果想让单元测试自动回滚,请在方法上添加注解 @Transactional(rollbackFor = {Exception.class})
package com.example.mybatisdemo;
import com.example.mybatisdemo.dao.UserMapper;
import com.example.mybatisdemo.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.Assert;
@SpringBootTest
@Slf4j
class MybatisdemoApplicationTests {
@Test
void contextLoads() {
}
@Autowired
private UserMapper userMapper;
@Test
void queryOneTest(){
User u = userMapper.selectById(2L);
Assert.notNull(u,"cannot find row!");
log.info(u.getName());
}
@Test
void insertOneTest(){
User u = new User();
u.setName("王一");
userMapper.insert(u);
Assert.notNull(u.getId(),"id已回写");
log.info(u.getId().toString());
}
@Test
void TestGetOne(){
User user = new User();
user.setId(2L);
Assert.isTrue(userMapper.getOne(user).getName().equals("王一"),"getUser:id=2L,name=王一");
}
@Test
void TestSaveNotExist(){
User user = new User();
user.setName("自定义添加");
userMapper.saveNotExist(user);
Assert.notNull(user.getId(),"id回写"+user.getId());
}
@Test
void TestSaveExist(){
User user = new User();
user.setId(1L);
user.setName("第一条数据,已更新2");
userMapper.saveExist(user);
User u = userMapper.getOne(user);
Assert.isTrue(u.getName().equals("第一条数据,已更新2"),"是第一条没错了");
}
@Test
void TestSaveExistEmpty(){
User user = new User();
user.setId(1L);
userMapper.saveExist(user);
User u = userMapper.getOne(user);
log.info(u.toString());
}
@Test
void TestDeleteOne(){
User u = userMapper.getFirst(new User());
Assert.notNull(u.getId(),"非空");
Assert.isTrue(userMapper.deleteOne(u.getId())>0,"删除失败");
}
}
7. 建表语句
-- --------------------------------------------------------
-- 主机: 127.0.0.1
-- 服务器版本: 8.0.21 - MySQL Community Server - GPL
-- 服务器操作系统: Win64
-- HeidiSQL 版本: 11.0.0.5919
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- 导出 表 test.role 结构
DROP TABLE IF EXISTS `role`;
CREATE TABLE IF NOT EXISTS `role` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 数据导出被取消选择。
-- 导出 表 test.user 结构
DROP TABLE IF EXISTS `user`;
CREATE TABLE IF NOT EXISTS `user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 数据导出被取消选择。
-- 导出 表 test.user_role 结构
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE IF NOT EXISTS `user_role` (
`rid` bigint NOT NULL,
`uid` bigint NOT NULL,
KEY `FK_user_role_role` (`rid`),
KEY `FK_user_role_user` (`uid`),
CONSTRAINT `FK_user_role_role` FOREIGN KEY (`rid`) REFERENCES `role` (`id`) ON DELETE CASCADE,
CONSTRAINT `FK_user_role_user` FOREIGN KEY (`uid`) REFERENCES `user` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 数据导出被取消选择。
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|